package com.jsb.laundry.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;


/**
 * 用户端个人详情表(UserDetail)实体类
 *
 * @author makejava
 * @since 2023-08-01 14:18:38
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "个人详情", description = "个人详情")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserDetail implements Serializable {

    private static final long serialVersionUID = 502175449716293993L;

    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID", dataType = "String")
    private String userId;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像", dataType = "String")
    private String userAvatar;

    /**
     * 用户昵称
     */
    @ApiModelProperty(value = "用户昵称", dataType = "String")
    private String userName;

    /**
     * 性别(0：未知,1：男,2：女)
     */
    @ApiModelProperty(value = "性别(0：未知,1：男,2：女)", dataType = "String")
    private String userSex;

    /**
     * 出生年月日
     */
    @ApiModelProperty(value = "出生年月日", dataType = "Date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date userBirth;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", dataType = "Date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 删除标识（0：正常,1：删除）
     */
    @ApiModelProperty(value = "删除标识（0：正常,1：删除）", dataType = "String")
    private String delFlag;

    /**
     * 实名认证(0: 未实名认证,1: 通过实名认证2：审核中）
     */
    @ApiModelProperty(value = "实名认证(0: 未实名认证,1: 通过实名认证2：审核中）", dataType = "String")
    private String status;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", dataType = "Date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号", dataType = "String")
    private String idCard;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名", dataType = "String")
    private String idName;

    /**
     * 省市
     */
    @ApiModelProperty(value = "省市", dataType = "String")
    private String city;

    /**
     * 积分
     */
    @ApiModelProperty(value = "积分", dataType = "String")
    private String userPoints;

    /**
     * 积分等级：1000元=等级1
     */
    @ApiModelProperty(value = "积分等级：1000元=等级1", dataType = "String")
    private String userGrade;

    /**
     * 总消费额
     */
    @ApiModelProperty(value = "总消费额", dataType = "String")
    private String totalConsume;

    /**
     * 账号可提现金额 （账号金额）
     */
    @ApiModelProperty(value = "账号可提现金额 （账号金额）", dataType = "number")
    private int userAmount;

    /**
     * 其他收益总金额
     */
    @ApiModelProperty(value = "其他收益总金额", dataType = "number")
    private int userOtherMoney;

    /**
     * 其他收益可提现的时间(在这个时间之后才可以提现这个金额)
     */
    @ApiModelProperty(value = "其他收益可提现的时间(在这个时间之后才可以提现这个金额)", dataType = "Date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date otherMoneyTxTime;

    /**
     * 总邀请人数
     */
    @ApiModelProperty(value = "总邀请人数", dataType = "number")
    private int userInvitationNumber;

    @ApiModelProperty(value = "token", dataType = "String",hidden = true)
    private String token;

    @ApiModelProperty(value = "用户登录标识(1:用户端，2:骑手端)", dataType = "String")
    private String userType;

    /**
     * 会员 (0:无会员 1:有会员)
     */
    @ApiModelProperty(value = "会员 (0:无会员 1:有会员)", dataType = "String")
    private String vipFlag = "0";

}
